package service.Proxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class studentProxy implements InvocationHandler {
    /*new一个目标对象的类装载器*/
    private  Object bshw;

    /*装载类的方法*/
    public studentProxy (Object bshw){
        this.bshw=bshw;

    }

    /*创建代理对象*/
    public Object createHw(){
        /*
         * 1.目标对象的类装载器
         *2.目标对象的反射对象的接口
         * */
        return  Proxy.newProxyInstance(bshw.getClass().getClassLoader(),bshw.getClass().getInterfaces(),this);
    }



    /*增强方法*/
    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        System.out.println("代理对象里面去增强");//前面增强
        Object invoke = method.invoke(bshw, args);/*真实方法*/
        System.out.println("黄威吃完之后，感觉自己没吃饱，然后去了厕所!");//后后面增强
        return invoke;
    }
}
